//
//  $Id$
//  VCS_WS_Client
//
//  Created by hu_danyuan on 18-11-09.
//   (c) Copyright 2018, hu_danyuan All Rights Reserved
//
//	描    述:  视频监控
//

#import <Foundation/Foundation.h>
#import "VCS_WS_BaseClient.h"
#import "VCS_WS_VideoMonitorDelegate.h"
#import "VCS_WS_RealPlayResult.h"

@class VCS_WS_VideoFrameInfo;
@class VCS_WS_AudioFrameInfo;

// 一个码流一个对象
@interface VCS_WS_VideoMonitor : VCS_WS_BaseClient

@property (nonatomic, weak, nullable) id<VCS_WS_VideoMonitorDelegate> delegate;

/**
 * 实时预览通道视频
 * @param deviceUuid    指定设备id
 * @param cameraUuid    指定监控设备id
 * @param channelIndex  指定通道索引
 * @param streamQuality 指定预览的视频质量
 * @param completion    请求结果回调，返回视频会话ID
 * @return
 */
- (void)realPlay:(NSString * _Nonnull)deviceUuid cameraUuid:(NSString * _Nonnull)cameraUuid channelIndex:(NSUInteger)channelIndex streamQuality:(NSUInteger)streamQuality completion:(void (^ _Nullable)(VCS_WS_RealPlayResult * _Nullable result, NSError * _Nullable error))completion;

/**
 * 关闭实时预览
 * @param completion    请求结果回调
 * @return
 */
- (void)stopRealPlay:(void (^ _Nullable)(NSError * _Nullable error))completion;

/**
 * 回放录像视频
 * @param playbackParam 回放参数
 * @param completion    请求结果回调，返回视频会话ID
 * @return
 */
- (void)playbackByTime:(VCS_WS_RecviewInfo * _Nonnull)playbackParam completion:(void (^ _Nullable)(VCS_WS_PlaybackResult * _Nullable result, NSError * _Nullable error))completion;

/**
 * 关闭录像回放
 * @param completion    请求结果回调
 * @return
 */
- (void)stopPlayback:(void (^ _Nullable)(NSError * _Nullable error))completion;

/**
 * 下载录像视频
 * @param downloadParam 回放参数
 * @param completion    请求结果回调，返回视频会话ID
 * @return
 */
- (void)downloadByTime:(VCS_WS_RecviewInfo * _Nonnull)downloadParam completion:(void (^ _Nullable)(VCS_WS_DownloadResult * _Nullable result, NSError * _Nullable error))completion;

/**
 * 关闭录像下载
 * @param completion    请求结果回调
 * @return
 */
- (void)stopDownload:(void (^ _Nullable)(NSError * _Nullable error))completion;


@end

